#pragma once

class Point2D
{
public:
	Point2D(int x = 0, int y = 0);

	virtual ~Point2D(void);

	void SetX(int value);
	int GetX() const;

	void SetY(int value);
	int GetY() const;

	Point2D operator+(const Point2D& a) const;
	Point2D operator-(const Point2D& a) const;
	Point2D operator*(const Point2D& a) const;
	Point2D operator/(const Point2D& a) const;

	static Point2D min(Point2D& a, Point2D& b);
	static Point2D max(Point2D& a, Point2D& b);

	void operator+=(Point2D a);
	void operator+=(int a);
	void operator-=(Point2D a);
	void operator-=(int a);
	void operator*=(Point2D a);
	void operator*=(int a);
	void operator/=(Point2D a);
	void operator/=(int a);
	
protected:
	int x,y;

};

